﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BackusEntity;
using System.Data.SqlClient;
using System.Data;

namespace BackusLogic
{
    public class InnovacionManager
    {
        SABMILLEREntities modeloEntidades = new SABMILLEREntities();

        public int registraActualizaInnovacion(int? idInnovacion, string titulo, string login, string colaborador, DateTime? fechaImplementacion, string situacionInicial, string solicitudPropuesta, string resultadoLogrado, decimal? score, string etiqueta, int? idSubProceso, int? idEquipo, string rutaArchivo, int? idInnovacionReferencia)
        {
            try
            {
                int resultado = modeloEntidades.usp_RegistraActualizaInnovacion(idInnovacion, titulo, login, colaborador, fechaImplementacion, situacionInicial, solicitudPropuesta, resultadoLogrado, score, etiqueta, idSubProceso, idEquipo, rutaArchivo, idInnovacionReferencia).FirstOrDefault().resultado;
                return resultado;
            }
            catch (SqlException e)
            {
                return -1;
            }
        }

        public List<usp_ObtenerInnovacionesPorCriterio_Result> obtenerInnovacionesPorCriterio(string titulo, int? idSubProceso, string fechaCreacion, string fechaHasta, int? idEquipo)
        {
            try
            {
                List<usp_ObtenerInnovacionesPorCriterio_Result> innovaciones = modeloEntidades.usp_ObtenerInnovacionesPorCriterio(titulo, idSubProceso, fechaCreacion, fechaHasta, idEquipo).ToList<usp_ObtenerInnovacionesPorCriterio_Result>();
                return innovaciones;
            }
            catch (SqlException e)
            {
                return null;
            }
        }

        public int obtenerIdMaxInnovacion()
        {
            try
            {
                int codigoInnovacion = (int)modeloEntidades.usp_ObtenerIdMaxInnovacion().FirstOrDefault().IDMAX;
                return codigoInnovacion + 1;
            }
            catch (SqlException e)
            {
                return 0;
            }
        }
    }
}
